//package aimis.config.db;
//
//import org.slf4j.Logger;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.DependsOn;
//import org.springframework.context.annotation.Profile;
//import org.springframework.security.crypto.password.PasswordEncoder;
//import aimis.domain.User;
//import aimis.repo.DepartmentRepo;
//import aimis.repo.RoleRepo;
//import aimis.repo.UserRepo;
//
//import static org.slf4j.LoggerFactory.getLogger;
//
//@Profile(value = { "dev", "local"})
//@Configuration
//@ConditionalOnClass(value={AuthorityInitConfig.class,DepartmentInitConfig.class,RoleInitConfig.class})
//public class UserInitConfig {
//    private Logger LOGGER = getLogger(UserInitConfig.class);
//    @Autowired
//    private UserRepo userRepo;
//    @Autowired
//    private DepartmentRepo departmentRepo;
//    @Autowired
//    private RoleRepo roleRepo;
//    @Autowired
//    private PasswordEncoder passwordEncoder;
//    @Value("${admin.password}")
//    private String adminPassword;
//
//    @Bean
//    @DependsOn("roleInit")
//    public void userInit() {
//        LOGGER.info("初始化用户开始...");
//        manager();
//        vulnerability();
//        LOGGER.info("初始化用户结束...");
//    }
//
//    private void manager() {
//        try {
//            var role = roleRepo.findByName("交互经理");
//            var cqu = departmentRepo.findByNameAndParent("重庆大学", null);
//            User user = new User();
//            user.setName("重庆大学交互经理");
//            user.setLoginName("cquManager");
//            user.setDepartment(cqu);
//            user.getRoles().add(role);
//            user.setPassword(passwordEncoder.encode(adminPassword));
//            userRepo.save(user);
//
//            var pk = departmentRepo.findByNameAndParent("北京大学", null);
//            User user2 = new User();
//            user2.setName("北京大学交互经理");
//            user2.setLoginName("pkManager");
//            user2.setDepartment(pk);
//            user2.getRoles().add(role);
//            user2.setPassword(passwordEncoder.encode(adminPassword));
//            userRepo.save(user2);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    private void vulnerability() {
//        try {
//            var role1 = roleRepo.findByName("一线分析师");
////            var role2 = roleRepo.findByName("二线分析师");
//            var role3 = roleRepo.findByName("三线分析师");
//            var secureCenter = departmentRepo.findByNameAndParent("安全中心", null);
//            User verifyAnalyst = new User();
//            verifyAnalyst.setLoginName("一线分析师1");
//            verifyAnalyst.setName("一线分析师1");
//            verifyAnalyst.setDepartment(secureCenter);
//            verifyAnalyst.getRoles().add(role1);
//
//            User processAnalyst = new User();
//            processAnalyst.setLoginName("二线分析师1");
//            processAnalyst.setDepartment(secureCenter);
//            processAnalyst.setName("二线分析师1");
//            processAnalyst.getRoles().add(role2);
//
//            User testAnalyst = new User();
//            testAnalyst.setDepartment(secureCenter);
//            testAnalyst.setLoginName("三线分析师1");
//            testAnalyst.setName("三线分析师1");
//            testAnalyst.getRoles().add(role3);
//            userRepo.save(verifyAnalyst);
//            userRepo.save(processAnalyst);
//            userRepo.save(testAnalyst);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//
//    }
//}
